package com.wy.project.service;

import com.wy.project.entity.ProductApprovalInfo;
import com.wy.project.entity.ProductInfo;
import com.wy.project.entity.ProductInfoBizFlowInfo;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 *  产品的业务流程信息服务类
 * </p>
 *
 * @author Apollo
 * @since 2021-01-16
 */
public interface IProductInfoBizFlowInfoService extends IService<ProductInfoBizFlowInfo> {

    /**
     * 将产品业务流程信息
     * 存为草稿(创建)
     * @param productInfo 要创建的产品基本信息,包含业务流程信息
     */
    public void save4Draft(ProductInfo productInfo);


    /**
     * 将产品业务流程信息
     * 提交审核(创建)
     * @param productInfo 要创建的产品基本信息,包含业务流程信息
     */
    public void save4Approval(ProductInfo productInfo);


    /**
     * 将产品业务流程信息
     * 存为草稿(修改)
     * @param productInfo 要修改的产品基本信息,包含业务流程信息
     */
    public void edit4Draft(ProductInfo productInfo);


    /**
     * 将产品业务流程信息
     * 提交审核(修改)
     * @param productInfo 要修改的产品基本信息,包含业务流程信息
     */
    public void edit4Approval(ProductInfo productInfo);


    /**
     * 将产品业务流程信息
     * 审核通过
     * @param productApprovalInfo 审核记录
     */
    public void pass(ProductApprovalInfo productApprovalInfo);


    /**
     * 将产品业务流程信息
     * 审核不通过
     * @param productApprovalInfo 审核记录
     */
    public void notPass(ProductApprovalInfo productApprovalInfo);


    /**
     * 修订
     * 再次审核
     * 审核失败之后,进行信息的修改,之后提交审核
     * @param productInfo 要修改的产品基本信息,包含业务流程信息
     */
    public void revise(ProductInfo productInfo);


    /**
     * 将产品业务流程信息
     * 作废
     * @param code 要作废的信息标识
     */
    public void abort(String code);


    /**
     * 产品业务流程信息
     * 查看详情
     * @param code 要查看的标识
     * @return 详情信息
     */
    public List<ProductInfoBizFlowInfo> findProductInfoBiz(String code);




}